// 在你的路由配置文件中 (例如 router/index.js)

import { createRouter, createWebHistory } from "vue-router";
import { ElMessage } from "element-plus";

// 导入你的路由配置
import routes from "./routes";

const router = createRouter({
  history: createWebHistory(),
  routes,
});

// 添加全局前置守卫
router.beforeEach((to, from, next) => {
  // 获取当前用户类型
  const userType = localStorage.getItem("userType");
  console.log("Router guard - to:", to.path, "userType:", userType);

  // 如果是前往登录页，直接放行
  if (to.path === "/login") {
    next();
    return;
  }

  // 如果用户未登录，重定向到登录页
  if (!userType) {
    ElMessage.warning("请先登录");
    next("/login");
    return;
  }

  // 检查路径前缀与用户类型是否匹配
  const pathPrefix = to.path.split("/")[1]; // 获取路径的第一部分
  console.log("Router guard - pathPrefix:", pathPrefix);

  if (userType === "student" && pathPrefix === "student") {
    // 学生访问学生页面，允许
    console.log("学生访问学生页面，允许");
    next();
  } else if (userType === "researcher" && pathPrefix === "researcher") {
    // 研究人员访问研究人员页面，允许
    console.log("研究人员访问研究人员页面，允许");
    next();
  } else if (to.path === "/") {
    // 访问根路径时，根据用户类型重定向到对应的首页
    if (userType === "student") {
      next("/student/dashboard");
    } else {
      next("/researcher/dashboard");
    }
  } else {
    // 尝试访问未授权页面，显示错误信息并重定向到对应的首页
    console.log("无权访问此页面:", to.path);
    ElMessage.error("无权访问此页面");

    if (userType === "student") {
      next("/student/dashboard");
    } else {
      next("/researcher/dashboard");
    }
  }
});

// 添加全局后置守卫，记录路由跳转成功的日志
router.afterEach((to, from) => {
  console.log("路由跳转成功 - 从:", from.path, "到:", to.path);
  console.log("当前路由完整信息:", to);
});

export default router;
